﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace puerto_serie
{
    public partial class FormEscogerBarco : Form
    {
        private ControladorJuego Control_;
        private int TAMANOY = 40;
        private int TAMANOX= 51;
        private int TAMANOMAXIMO = 8;
        private Panel[,] PanelMatrizJugador,PanelMatrizCpu;
        private int Direccion_;
        private int cantidadDeCambios_ = 0;
        public FormEscogerBarco()
        {
            InitializeComponent();
            PanelMatrizJugador = new Panel[TAMANOMAXIMO, TAMANOMAXIMO];
            PanelMatrizCpu = new Panel[TAMANOMAXIMO, TAMANOMAXIMO];
            inicio(PanelMatrizCpu, 480);
            inicio(PanelMatrizJugador,12);
            
        }
        private void inicio(Panel[,] PanelMatriz,int posx)
        {
            for (int i = 0; i < TAMANOMAXIMO; i++)
            {
                for (int j = 0; j < TAMANOMAXIMO; j++)
                {
                    Panel newPanel= new Panel();
                    newPanel.Location = new Point(j * 51 + posx, i * 40 + 12);
                    newPanel.Size = new Size(TAMANOX, TAMANOY);
                    newPanel.BackColor = Color.AliceBlue;
                    newPanel.Show();
                    newPanel.BorderStyle = BorderStyle.FixedSingle;
                    newPanel.MouseClick += new System.Windows.Forms.MouseEventHandler(this.EventosMatriz);
                    PanelMatriz[i, j]=newPanel;
                    this.Controls.Add(newPanel);
                }
            }
        }
        public void setControlador(ControladorJuego controlEnt)
        {
            Control_ = controlEnt;
            Control_.adherirFormATableros(this);
        }
        private void EventosMatriz(object sender, MouseEventArgs e)
        {
            if (cantidadDeCambios_ < 10)
            {
                Panel n = (Panel)sender;
                int x = (n.Location.X - 12) / TAMANOX;
                int y = (n.Location.Y - 12) / TAMANOY;
                if (x < 480)
                {
                    Control_.SetParameters(x, y, Direccion_);
                    Control_.ControlJuego();
                }
            }
            
        }
        public void realizarCambio(int x, int y, int tipoDeMatriz, int tipoDeDato)
        {
            Panel[,] matrizAnalizada;
            if (tipoDeMatriz == 1)
            {
                 matrizAnalizada=PanelMatrizJugador;
            }
            else
            {
                matrizAnalizada = PanelMatrizCpu;
            }
            if (tipoDeDato == 1 && tipoDeMatriz==1)
            {
                matrizAnalizada[y, x].BackColor = Color.DarkBlue;
                cantidadDeCambios_++;
                if (cantidadDeCambios_ == 10)
                {
                    label1.Hide();
                    radioButton1.Hide();
                    radioButton2.Hide();
                }
            }
            else if (tipoDeDato == 2)
            {
                matrizAnalizada[y, x].BackColor = Color.Gray;
            }
            else if(tipoDeDato == 3)
            {
                matrizAnalizada[y, x].BackColor = Color.DarkRed;
            }
        }
        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            Direccion_ = 0;
        }

        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            Direccion_ = 1;
        }



   





    }
}
